package org.dromara.tearoom.api.domain.vo;

import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serial;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
@Data
@NoArgsConstructor
public class RemoteMallOrderVo implements Serializable {
    @Serial
    private static final long serialVersionUID = 1L;
    private String id;

    /**
     * 订单号
     */
    private String orderNo;

    /**
     * 用户ID
     */
    private Long userId;



    /**
     * 订单状态(0=待发货,1=已发货,2=已完成,3=已取消)
     */
    private Long orderStatus;

    /**
     * 收货人（冗余字段）
     */
    private String consignee;

    /**
     * 收货电话（冗余字段）
     */
    private String mobile;

    /**
     * 收货地址（冗余字段）
     */
    private String address;

    /**
     * 自提点ID
     */
    private Long pickupPointId;

    /**
     * 自提码
     */
    private String pickupCode;

    private Integer revenue;
    private Integer totalPrice;
    private Integer prepayAmount;
    private String couponId;
    private Integer couponPrice;
    private String paymentMethod;
    private Integer isCart;
    private String pickupPoint;
    private List<Coupon> coupons;
    @Data
    public static class Coupon {

        /**
         * 优惠劵编号
         */
        private Long id;
        /**
         * 优惠劵名
         */
        private String name;

        /**
         * 是否设置满多少金额可用，单位：分
         */
        private Integer usePrice;

        /**
         * 生效开始时间
         */
        private LocalDateTime validStartTime;
        /**
         * 生效结束时间
         */
        private LocalDateTime validEndTime;

        /**
         * 优惠卷类型
         */
        private Integer type;

        /**
         * 优惠卷类型
         */
        private Integer plateType;

        /**
         * 优惠小时
         */
        private Double hourCount;

        /**
         * 折扣百分比
         */
        private Integer discountPercent;
        /**
         * 优惠金额，单位：分
         */
        private Integer discountPrice;
        /**
         * 折扣上限，单位：分
         */
        private Integer discountLimitPrice;

        /**
         * 是否匹配
         */
        private Boolean match;
        /**
         * 不匹配的原因
         */
        private String mismatchReason;

    }
}
